*TX 06 - íÜçëåÍä»ëÃéöÇÃïœä∑

(96 îN 2 åé 9 ì˙)

Q: ǫǧÇ∑ÇÍÇŒ Macintosh ÇÃä»ëÃéöÉGÉìÉRÅ[ÉfÉBÉìÉOÇëŒâûÇ∑ÇÈ GB ïWèÄÇ…ïœä∑Ç≈Ç´Ç‹Ç∑Ç©ÅB

A: ä»ëÃéöÇ…ëŒÇ∑ÇÈ Mac ÇÃÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕÉVÉtÉg GB2312 Ç≈Ç∑ÅBGB2312 Ç©ÇÁ Mac ÉGÉìÉRÅ[ÉfÉBÉìÉOÇ÷ÇÃïœä∑ÇçsǧDžÇÕÅAǪÇÍǺÇÍÇÃï∂éöÇ… 0x8080 Çâ¡Ç¶Ç‹Ç∑ÅBÇ‹ÇΩÅAMac ÉGÉìÉRÅ[ÉfÉBÉìÉOÇ©ÇÁ GB2312 Ç÷ÇÃïœä∑ÇçsǧDžÇÕÅAǪÇÍǺÇÍÇÃï∂éöÇ©ÇÁ 0x8080 Çç∑ǵà¯Ç´ÇµÇ‹Ç∑ÅBÇΩÇΔǶnjÅAIDEOGRAPHIC COMMA (unicode ÇÃÉRÅ[ÉhÉ|ÉCÉìÉgÇÕ 0x3001) ÇÕÅAGB Ç≈ÇÕ 0x2122 Ç≈Ç∑Ç™ÅAMac Ç≈ÇÕ 0xA1A2 Ç≈Ç∑ÅB ÇΩÇæàÍǬíçà”Ç∑Ç◊Ç´ï∂éöéÌÇÕÉçÅ[É}éöÇ≈Ç∑ÅBéüÇ…ÅAÉçÅ[É}éöÇÃïœä∑ï˚ñ@ÇãÔëÃìIÇ…ê‡ñæÇ∑ÇÈÉRÅ[ÉhÇé¶ÇµÇ‹Ç∑ÅB

// ï∂éöÇÃïœä∑Ç™ïKóvÇ»èÍçáÇÕ true Çï‘ǵÅAï∂éöÇ™ 1 ÉoÉCÉgï∂éö
// (êÊì™ÇÃÉoÉCÉgÇæÇØÇ™èàóùÇ≥ÇÍÇΩï∂éöÇΔǢǧà”ñ°) ÇÃèÍçáÇÕ false Çï‘Ç∑
// (ǬNjÇËÅAñflÇËílÇà false ÇÕÅAǪÇÃï∂éöÇ™ÉçÅ[É}éöÇæÇΔǢǧDZÇΔÇà”ñ°Ç∑ÇÈ)
boolean MacToGB2312(unsigned char first, unsigned char second,
    unsigned short *output)
{
    if (first < 0x81) {
        *output = first;
        return false;
    } else {
        unsigned short temp;
        temp = (first - 0x80) << 8;
        temp += (second - 0x80);
        *output = temp;
        return true;
    }
}

// DZÇÍÇ≈èÌÇ…ïœä∑Ç™çsÇÌÇÍÅAÉoÉCÉgÇå¬ï Ç…éÊìæÇµÇΩÇËÅAïœä∑Ç™çsÇÌÇÍÇΩÇ©
// ǫǧǩÇímÇÁÇπÇÈò_óùílÇï‘Ç∑ïKóvÇÕǻǢ
void GB2312ToMac(unsigned short input, unsigned short *output)
{
    *output = input + 0x8080;
}
ÉRÅ[ÉhÇ©ÇÁLJÇÌÇ©ÇÈÇÊǧDžÅA2 ÉoÉCÉgï∂éöÇ≈ÇÕóºï˚ÇÃÉoÉCÉgÇÉVÉtÉgÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBDZÇÍÇ…ÇÊÇËÅAdžÇÈï∂éöÇ™ 2 ÉoÉCÉgï∂éöÇÃàÍïîÇ≈džÇÈÇÃÇ©ÅAÇ‹ÇΩÇÕ 1 ÉoÉCÉgÇÃÉçÅ[É}éöÇ≈džÇÈÇÃǩǙñæÇÁǩDžǻÇËÇ‹Ç∑ÅB

éQçlï∂å£
* Understanding Japanese Information Processing, by Ken Lunde, published by O'Reilly & Associates.

* Ken Lunde ÇÃÉzÅ[ÉÄÉyÅ[ÉWÇÕ http://jasper.ora.com/lunde/ÅBDZÇÃÉzÅ[ÉÄÉyÅ[ÉWÇ≈ÇÕÅAéÂÇΔǵǃì˙ñ{åÍÇÃï∂éöóÒèàóùÇΔǪÇÃïWèÄâªÇ…ä÷Ç∑ÇÈèÓïÒÇ™åˆäJÇ≥ÇÍǃǢNjÇ∑Ç™ÅAíÜçëåÍÇΔäÿçëåÍÇÃèÓïÒèàóùÇ…ä÷Ç∑ÇÈÉäÉìÉNLJópà”Ç≥ÇÍǃǢNjÇ∑ÅB